-
Notifications
You must be signed in to change notification settings - Fork 63
feat: Durable web search golem:web-search API across multiple providers in Rust #60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
google.mp4 |
Brave brave.mp4 |
serper serper.mp4 |
tavily tavily.mp4 |
…rgets loop, and added release profiles in test
Hi @mschuwalow, |
Some more clippy issues. You should be able to just run |
…rovider-specific SearchSession logic in each provider.
Co-authored-by: Maxim Schuwalow <maxim.schuwalow@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks promising! A few minor changes left
@mschuwalow I'd like to clarify the scope for the web search providers. Are the existing providers sufficient for this task, or is there an expectation to implement any new ones beyond those detailed in the issue? |
I was using exa in my personal side hustle project. I found it more usefull. So thought why not add it to golem. They have this https://docs.exa.ai/reference/search#body-type feature that lets you decide to get search results like google which will be seo ranked or more relevant result where seo does not matter. |
Adding more is of course appreciated, but the current set is enough for me to merge when all comments are addressed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some cleanup left
@mschuwalow This is really wrong. |
Introduction
This pull request introduces a robust and extensible durable web search API for the Golem platform, implemented in Rust. This
web-search
component provides a unified interface for performing web searches across multiple providers—including Brave, Google, Serper, and Tavily—enabling users to leverage the strengths of each search engine through a single, consistent API.Key features include support for durable, replayable search sessions, advanced filtering (such as domain inclusion/exclusion and safe search levels), multilingual and regional queries, and the ability to retrieve both standard and enriched content (like images and HTML snippets). The API is designed for reliability and flexibility, making it suitable for a wide range of use cases, from simple information retrieval to advanced, policy-driven or content-sensitive searches.
Tests Added
A comprehensive suite of tests has been included to validate the new web search API, including:
Basic Search Test:
Verifies simple search queries return expected results.
Session Pagination Test:
Ensures multiple pages of results can be fetched in a session.
Error Handling Test:
Confirms graceful handling of invalid queries and provider errors.
Domain Filtering Test:
Tests inclusion and exclusion of specific domains in search results.
Image and HTML Content Test:
Checks correct handling of image results and HTML snippets.
Multilingual and Regional Search Test:
Validates search with different languages and regions.
Advanced Search Test:
Demonstrates advanced search with high safe search and content chunks.
This test ensures the API can perform advanced queries with strict safe search settings and return results in content chunks, supporting use cases like child safety and trusted content discovery.
/closes Implement Durable Web Search
golem:web-search
API Across Different Providers in Rust #34/claim Implement Durable Web Search
golem:web-search
API Across Different Providers in Rust #34